Solving Hardy Weinberg Problems